/*
 * @File: types.ts
 * @desc: DifyFlowEditor组件相关的类型定义
 * @author: heqinghua
 * @date: 2025年08月19日 14:50:16
 */

/**
 * 节点类型枚举
 * 定义流程图中所有支持的节点类型
 */
export enum NodeType {
  INPUT = "INPUT", // 数据输入节点
  FILTER = "FILTER", // 数据过滤节点
  JOIN = "JOIN", // 数据连接节点
  UNION = "UNION", // 数据合并节点
  AGG = "AGG", // 数据聚合节点
  OUTPUT = "OUTPUT", // 数据输出节点
}

/**
 * 节点位置信息接口
 * 用于定义节点在画布中的坐标位置
 */
export interface Position {
  x: number; // 横坐标
  y: number; // 纵坐标
}

/**
 * 加工类型接口
 * 用于定义节点类型的显示信息
 */
export interface ProcessingType {
  value: string; // 节点类型值
  label: string; // 节点类型显示名称
}

/**
 * 不同节点类型的图标映射
 * 为每种节点类型指定对应的图标URL
 */
export const NODE_TYPE_LOGO: Record<NodeType, string> = {
  [NodeType.INPUT]:
    "https://mdn.alipayobjects.com/huamei_f4t1bn/afts/img/A*RXnuTpQ22xkAAAAAAAAAAAAADtOHAQ/original",
  [NodeType.FILTER]:
    "https://mdn.alipayobjects.com/huamei_f4t1bn/afts/img/A*ZJ6qToit8P4AAAAAAAAAAAAADtOHAQ/original",
  [NodeType.JOIN]:
    "https://mdn.alipayobjects.com/huamei_f4t1bn/afts/img/A*EHqyQoDeBvIAAAAAAAAAAAAADtOHAQ/original",
  [NodeType.UNION]:
    "https://mdn.alipayobjects.com/huamei_f4t1bn/afts/img/A*k4eyRaXv8gsAAAAAAAAAAAAADtOHAQ/original",
  [NodeType.AGG]:
    "https://mdn.alipayobjects.com/huamei_f4t1bn/afts/img/A*TKG8R6nfYiAAAAAAAAAAAAAADtOHAQ/original",
  [NodeType.OUTPUT]:
    "https://mdn.alipayobjects.com/huamei_f4t1bn/afts/img/A*zUgORbGg1HIAAAAAAAAAAAAADtOHAQ/original",
};

/**
 * 节点类型列表-本地数据
 * 定义了内置的节点类型及其显示名称
 */
export const NODE_TYPE_LIST: ProcessingType[] = [
  { value: NodeType.FILTER, label: "数据筛选" },
  { value: NodeType.JOIN, label: "数据连接" },
  { value: NodeType.UNION, label: "数据合并" },
  { value: NodeType.AGG, label: "数据聚合" },
  { value: NodeType.OUTPUT, label: "数据输出" },
];


